A CLI for wrangling directories of source files. Like a static generator, but for whatever.
Find a file
2025-02-22 14:30:43 -05:00
playbill Add basic support for markdown sources 2025-02-21 19:38:15 -05:00
src Move playbill to its own repo 2025-02-22 14:30:43 -05:00
.gitignore Initial commit 2025-02-12 10:31:22 -05:00
biome.json Move playbill to its own repo 2025-02-22 14:30:43 -05:00
bun.lock Move playbill to its own repo 2025-02-22 14:30:43 -05:00
package.json Move playbill to its own repo 2025-02-22 14:30:43 -05:00
README.md Add shapes to readme 2025-02-20 19:58:23 -05:00
tsconfig.json Initial commit 2025-02-12 10:31:22 -05:00

Playbill Builder CLI

This is a CLI tool for compiling YAML files into a validated Playbill for Proscenium

Usage

Usage:
  muse [/path/to/binding.yaml] <options>

Options:
  --check         Only load and check the current binding and resources,
                  but do not compile
  --write         Write the output to a file. If not specified, outputs to stdout
  --outfile       Specify the output file path [default: playbill.json]
  --verbose, -v   Verbose output
  --help, -h      Show this help message

Binding File

$binding: playbill  # Required
id: the-playbill-id # Required
name: My Playbill   # Required
author: My Name     # Required
version: 0.0.1      # Required
files:              # Optional
  - "**/*.yaml"

Definable Playbill Resources

  • ability
  • species
  • entity
  • item
  • tag
  • lore
  • method
  • rule

Shape: Ability

$define: ability # Required
id: ability-id # Required
name: Ability Name # Required
description: Some description # Required
type: action | cue | trait # Required
costs: # Optional, and each subfield is optional
  ap: 1
  hp: 1
  xp: 1
  ep: 1
roll: none (default), fate or a talent # Optional
boons: # Optional
  - First boon
  - Second boon
banes: # Optional
  - First bane
  - Second bane

Shape: Method

$define: method # Required
id: method-id # Required
name: Method Name # Required
description: Method Description # Required
curator: Method Curator Name # Required
abilities:
  - [ability-id, another-ability]
  - [yet-anotther, and-so-on]

Shape: Species

$define: species # Required
id: species-id # Required
name: Species Name # Required
description: Species Description # Required
abilities:
  - ability-id
  - another-ability
bonuses:
  bonusMaxHp: 1
  bonusMaxAp: 1
  bonusMaxEp: 1
  muscleProwess: adept
  knowledgeProwess: adept
  focusProwess: adept
  charmProwess: adept
  cunningProwess: adept
  sparkProwess: adept

Shape: Entity

$define: entity
id: entity-id # Required
name: Entity Name # Required
description: Entity Description # Required
species: species-id # Required
abilities:
  - some-ability
  - another-ability
stats:
  hp: 1
  ap: 1
  ep: 1
  xp: 1
talents:
  muscle: adept
  knowledge: adept
  focus: adept
  charm: adept
  cunning: adept
  spark: adept
damage: 0
baggage: []

Shape: Item

$define: item
id: item-id # Required
name: Item Name # Required
description: Item Description # Required
type: wielded | worn | trinket
slots: 0 | 1 | 2 | 3 | 4 | 5
tags:
  - some-tag-id
  - another-tag-id

Shape: Item Tag

$define: tag
id: tag-id # Required
name: Tag Name # Required
description: Tag Description # Required
icon: https://some.url/icon.png

Shape: Lore

$define: lore
id: lore-id # Required
name: Lore Entry Name # Required
description: Lore entry content # Required
categories:
  - something
  - another

Shape: Rule

$define: rule
id: rule-id # Required
name: Rule Name # Required
description: Rule content # Required
overrule: existing-rule-id # Optional