module ./builtin
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 IFONE
        feature enum-member-feat
    member two
    if IFCOND
    feature enum-feat
object Base
    member base1: Enum optional=False
    if {'all': ['IFALL1', 'IFALL2']}
object Variant1
    member var1: str optional=False
        if IFSTR
        feature member-feat
    feature variant1-feat
object Variant2
object Object
    base Base
    tag base1
    case one: Variant1
    case two: Variant2
        if {'any': ['IFONE', 'IFTWO']}
    feature union-feat1
alternate Alternate
    tag type
    case i: int
    case b: bool
    if {'not': {'any': ['IFONE', 'IFTWO']}}
    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}, description on the same line
    arg=two

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

    arg=base1
 description starts on a new line,
 minimally indented
doc symbol=Variant1
    body=
A paragraph

Another paragraph

@var1 is undocumented
    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=Alternate
    body=

    arg=i
description starts on the same line
    remainder indented the same
    @b is undocumented
    arg=b

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

    arg=arg1
    description starts on a new line,
    indented
    arg=arg2
description starts on the same line
    remainder indented differently
    arg=arg3

    feature=cmd-feat1
a feature
    feature=cmd-feat2
another feature
    section=None
.. note:: @arg3 is undocumented
    section=Returns
@Object
    section=Errors
some
    section=TODO
frobnicate
    section=None
.. admonition:: Notes

 - Lorem ipsum dolor sit amet
 - Ut enim ad minim veniam

 Duis aute irure dolor

.. qmp-example::
   :title: Ideal fast-food burger situation

   -> "in"
   <- "out"

Examples::

 - Not a QMP code block
 - Merely a preformatted code block literal
 It isn't even an rST list.
 - *verbatim*
 - {braces}

Note::
    Ceci n'est pas une note
    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=None
.. qmp-example::

   -> "this example"

   <- "has no title"
doc symbol=EVT_BOXED
    body=

    feature=feat3
a feature
