···4141 return isValid(id as string) ? true : `Extpected SongID to end with valid ulid but recieved (${id})`;
4242 }),
4343);
4444+4545+const TrackNumber = Schema.Int.pipe(Schema.between(0, 200), Schema.NullOr);
4646+4447const Song = Schema.Struct({
4548 id: SongId,
4649 title: Schema.NonEmptyString,
4750 // TODO: this can only positive non zero int
4848- trackNumber: Schema.NullOr(Schema.Int),
5151+ trackNumber: TrackNumber,
4952 fileId: AudioFileId,
5053}).annotations({
5154 title: "songs",