package engine import "slices" type Card struct { Name string AllOut bool Text string Flavor string } func (c *Card) Base() *Card { return c } func (c *Card) CanPlay(g *Game) bool { panic("unimplemented") } type IsCard interface { Base() *Card CanPlay(g *Game) bool } type CardInstance struct { *Card Visible bool } var secretCardStruct = &Card{ Name: "?", } var SecretCard = &CardInstance{ Card: secretCardStruct, Visible: false, } func Secrets(size int) Stack { return slices.Repeat([]IsCard{SecretCard}, size) }