module None
object q_empty
enum QType
    prefix QTYPE
    member none
    member qnull
    member qnum
    member qstring
    member qdict
    member qlist
    member qbool
module doc-good.json
enum Enum
    member one
        if ['defined(IFONE)']
    member two
    if ['defined(IFCOND)']
    feature enum-feat
object Base
    member base1: Enum optional=False
object Variant1
    member var1: str optional=False
        if ['defined(IFSTR)']
        feature member-feat
    feature variant1-feat
object Variant2
object Object
    base Base
    tag base1
    case one: Variant1
    case two: Variant2
        if ['IFTWO']
    feature union-feat1
object q_obj_Variant1-wrapper
    member data: Variant1 optional=False
object q_obj_Variant2-wrapper
    member data: Variant2 optional=False
enum SugaredUnionKind
    member one
    member two
        if ['IFTWO']
object SugaredUnion
    member type: SugaredUnionKind optional=False
    tag type
    case one: q_obj_Variant1-wrapper
    case two: q_obj_Variant2-wrapper
        if ['IFTWO']
    feature union-feat2
alternate Alternate
    tag type
    case i: int
    case b: bool
    feature alt-feat
object q_obj_cmd-arg
    member arg1: int optional=False
    member arg2: str optional=True
    member arg3: bool optional=False
command cmd q_obj_cmd-arg -> Object
    gen=True success_response=True boxed=False oob=False preconfig=False
    feature cmd-feat1
    feature cmd-feat2
command cmd-boxed Object -> None
    gen=True success_response=True boxed=True oob=False preconfig=False
    feature cmd-feat1
    feature cmd-feat2
event EVT-BOXED Object
    boxed=True
    feature feat3
doc freeform
    body=
= Section
doc freeform
    body=
== Subsection

*with emphasis*
@var {in braces}

* List item one
* Two, multiple
  lines

* Three
  Still in list

Not in list

- Second list
  Note: still in list

Note: not in list

1. Third list
   is numbered

2. another item

Returns: the King
Since: the first age
Notes:

1. Lorem ipsum dolor sit amet

2. Ut enim ad minim veniam

Duis aute irure dolor

Example:

-> in
<- out
Examples:
- *verbatim*
- {braces}
doc symbol=Enum
    body=

    arg=one
The _one_ {and only}
    arg=two

    feature=enum-feat
Also _one_ {and only}
    section=None
@two is undocumented
doc symbol=Base
    body=

    arg=base1
the first member
doc symbol=Variant1
    body=
A paragraph

Another paragraph (but no @var: line)
    arg=var1

    feature=variant1-feat
a feature
    feature=member-feat
a member feature
doc symbol=Variant2
    body=

doc symbol=Object
    body=

    feature=union-feat1
a feature
doc symbol=SugaredUnion
    body=

    arg=type

    feature=union-feat2
a feature
doc symbol=Alternate
    body=

    arg=i
an integer
@b is undocumented
    arg=b

    feature=alt-feat
a feature
doc freeform
    body=
== Another subsection
doc symbol=cmd
    body=

    arg=arg1
the first argument
    arg=arg2
the second
argument
    arg=arg3

    feature=cmd-feat1
a feature
    feature=cmd-feat2
another feature
    section=Note
@arg3 is undocumented
    section=Returns
@Object
    section=TODO
frobnicate
    section=Notes
- Lorem ipsum dolor sit amet
- Ut enim ad minim veniam

Duis aute irure dolor
    section=Example
-> in
<- out
    section=Examples
- *verbatim*
- {braces}
    section=Since
2.10
doc symbol=cmd-boxed
    body=
If you're bored enough to read this, go see a video of boxed cats
    feature=cmd-feat1
a feature
    feature=cmd-feat2
another feature
    section=Example
-> in

<- out
doc symbol=EVT-BOXED
    body=

    feature=feat3
a feature
