==================
Basic long format
==================
#!srfv1
#!long
name::alice
age:num:30

---

(document
  (magic)
  (directive
    (directive_long))
  (field
    (untyped_field
      (key)
      (value)))
  (field
    (typed_field
      (key)
      (type_hint)
      (value))))

==================
Basic compact format
==================
#!srfv1
name::alice,age:num:30

---

(document
  (magic)
  (field
    (untyped_field
      (key)
      (value)))
  (field
    (typed_field
      (key)
      (type_hint)
      (value))))

==================
Directives
==================
#!srfv1
#!requireeof
#!long
#!expires=1772589213
#!created=1772500000
#!modified=1772500001
name::alice

#!eof

---

(document
  (magic)
  (directive
    (directive_requireeof))
  (directive
    (directive_long))
  (directive
    (directive_expires
      value: (timestamp)))
  (directive
    (directive_created
      value: (timestamp)))
  (directive
    (directive_modified
      value: (timestamp)))
  (field
    (untyped_field
      (key)
      (value)))
  (blank_line)
  (directive
    (directive_eof)))

==================
Comments
==================
#!srfv1
# This is a comment
name::alice

---

(document
  (magic)
  (comment)
  (field
    (untyped_field
      (key)
      (value))))

==================
All type hints
==================
#!srfv1
name:string:alice
age:num:30
active:bool:true
missing:null:
data:binary:aGVsbG8=
bio:12:hello world!

---

(document
  (magic)
  (field
    (typed_field
      (key)
      (type_hint)
      (value)))
  (field
    (typed_field
      (key)
      (type_hint)
      (value)))
  (field
    (typed_field
      (key)
      (type_hint)
      (value)))
  (field
    (typed_field
      (key)
      (type_hint)))
  (field
    (typed_field
      (key)
      (type_hint)
      (value)))
  (field
    (typed_field
      (key)
      (type_hint)
      (value))))

==================
Inline comments on directives
==================
#!srfv1 # version header
#!long # use long format
name::alice

---

(document
  (magic
    (inline_comment))
  (directive
    (directive_long
      (inline_comment)))
  (field
    (untyped_field
      (key)
      (value))))

==================
Multiple records long format
==================
#!srfv1
#!long
name::alice
age:num:30

name::bob
age:num:25

---

(document
  (magic)
  (directive
    (directive_long))
  (field
    (untyped_field
      (key)
      (value)))
  (field
    (typed_field
      (key)
      (type_hint)
      (value)))
  (blank_line)
  (field
    (untyped_field
      (key)
      (value)))
  (field
    (typed_field
      (key)
      (type_hint)
      (value))))
