comment: |
  Any character with a non-empty password can log into the online
  interface. Only GMs can edit.

  Note that usernames and passwords should not contain markup, because
  it will confuse the identity provider.
name:
username:
password:
player: 
gender: "<<default>>?<</default>>"
CR: "<<default>>2<</default>>"
contact: <<leaf.name/>><<if leaf.player>> (<<leaf.player/>>)<</if>>
contacts:
badgecolor: white
badgedesc:
group: "[[CharacterGroup]]"
type: Character Sheet
owned: False
transferable: Not Transferable
badge: |
  <<badge leaf color=leaf.badgecolor>>
    == <<leaf.name />> ==
    
    = <<leaf.number />> =

    == <<leaf.player />> ==

    = <<leaf.badgedesc />> =
  <</badge>>
coda: |
  == Contacts ==
  
  <<foreach leaf.contacts c,desc ifNone='* None.'>>
    * **<<c.contact/>>**: <<desc/>>
  <</foreach>>

  <<let owner=leaf>>
  <<foreach PacketGroup pg (pg.listed)>>
    == <<pg.name />> ==

    <<foreach recursive_get(leaf, 'stuff', folded=False) t (t.group == pg) ifNone='* None.'>>
      * <<if t.folded>><<t.name/>><<else/>>[[t]]<</if>><<if t.explicit_type>> (<<t.type/>>)<</if>><</foreach>>
  <</foreach>>
  <</let>>
  
  == Stats ==
  
  <<foreachpropin leaf s flavor="stat">>
    * **<<propname s/>>**: <<runtime leaf.s/>>
  <</foreachpropin>>
topleft: |
  <<if get('form', '') == 'badge'>>
    Name Badge
  <<else/>>
    <<leaf.type />>
  <</if>>
topright: <<leaf.transferable />>
bottomleft: |
  <<if get('form', '') == 'badge'>>
    <<GameInfo.name />>
  <<else />>
    <<parent.this />>
  <</if>>
bottomright: |
  <<if get('form', '') == 'badge'>>
    <<GameInfo.date />>
  <<else />>
    <<parent.this />>
  <</if>>
packet: |
  <<let owner=leaf>>
  <<link "/print/" leaf.username ".pdf">>Packet as PDF<</link>>
  
  == Character ==
  * [[leaf]]
  * [[get:leaf.badge|Badge]]
  
  <<foreach PacketGroup pg (pg.listed)>>
    <<if any([t.group == pg and not t.folded 
              for t in recursive_get(leaf, 'stuff', folded=False)])>>
    == <<link "/print/" leaf.username "/" pg.element_name>><<pg.name />><</link>> ==
    <<else/>>
    == <<pg.name />> ==
    <</if>>

    <<foreach recursive_get(leaf, 'stuff', folded=False) t (t.group == pg) ifNone='* None.'>>
      * <<if t.folded>><<t.name/>><<else/>>[[t]]<</if>><<if t.explicit_type>> (<<t.type/>>)<</if>><</foreach>>
  <</foreach>>
  <</let>>
