domain

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Card

type Card struct {
	ID            string `json:"id" yaml:"id"`
	Name          string `json:"name" yaml:"name"`
	Suit          Suit   `json:"suit" yaml:"suit"`
	Value         int    `json:"value" yaml:"value"`
	Description   string `json:"description" yaml:"description"`
	BlockUpright  bool   `json:"block_upright" yaml:"block_upright"`
	BlockReversed bool   `json:"block_reversed" yaml:"block_reversed"`
}

Card defines the structure and attributes of a Tarot card.

type DecisionStatus

type DecisionStatus string

DecisionStatus defines the outcome of a gate check.

const (
	StatusPass  DecisionStatus = "PASS"
	StatusBlock DecisionStatus = "BLOCK"
)

type DrawnCard

type DrawnCard struct {
	Card     Card     `json:"card"`
	Position Position `json:"position"`
}

DrawnCard represents a card drawn in a specific orientation.

func (DrawnCard) IsBlocking

func (dc DrawnCard) IsBlocking() bool

IsBlocking determines if the drawn card blocks the pipeline given its orientation.

type GateResult

type GateResult struct {
	Status    DecisionStatus `json:"status"`
	DrawnCard DrawnCard      `json:"drawn_card"`
	Reason    string         `json:"reason"`
	Seed      string         `json:"seed"`
}

GateResult holds the final verdict and metadata of the divination process.

type Oracle

type Oracle interface {
	Divine(ctx context.Context, seed string) (*GateResult, error)
}

Oracle defines the interface for executing fate-based gate decisions.

type Position

type Position string

Position represents the orientation of a Tarot card.

const (
	Upright  Position = "UPRIGHT"
	Reversed Position = "REVERSED"
)

type Suit

type Suit string

Suit represents the category or suit of a Tarot card.

const (
	MajorArcana Suit = "MAJOR_ARCANA"
	Wands       Suit = "WANDS"
	Cups        Suit = "CUPS"
	Swords      Suit = "SWORDS"
	Pentacles   Suit = "PENTACLES"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL