# Keyword Index

> Search this file to find which documents to load for specific topics.

## File Formats

| Keyword | Document |
|---------|----------|
| `.pro` | [formats/pp_song_spec.md](formats/pp_song_spec.md) |
| `.proplaylist` | [formats/pp_playlist_spec.md](formats/pp_playlist_spec.md) |
| protobuf | [formats/pp_song_spec.md](formats/pp_song_spec.md) |
| ZIP64 | [formats/pp_playlist_spec.md](formats/pp_playlist_spec.md) |
| binary format | [formats/pp_song_spec.md](formats/pp_song_spec.md), [formats/pp_playlist_spec.md](formats/pp_playlist_spec.md) |

## Song Structure

| Keyword | Document |
|---------|----------|
| song | [api/song.md](api/song.md) |
| group | [api/song.md](api/song.md), [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 4 |
| slide | [api/song.md](api/song.md), [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 5 |
| arrangement | [api/song.md](api/song.md), [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 6 |
| translation | [api/song.md](api/song.md), [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 7 |
| verse | [api/song.md](api/song.md) |
| chorus | [api/song.md](api/song.md) |
| lyrics | [api/song.md](api/song.md) |
| CCLI | [api/song.md](api/song.md), [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 3 |

## Playlist Structure

| Keyword | Document |
|---------|----------|
| playlist | [api/playlist.md](api/playlist.md) |
| entry | [api/playlist.md](api/playlist.md) |
| header | [api/playlist.md](api/playlist.md) |
| presentation | [api/playlist.md](api/playlist.md) |
| placeholder | [api/playlist.md](api/playlist.md) |
| embedded | [api/playlist.md](api/playlist.md) |

## Text Handling

| Keyword | Document |
|---------|----------|
| RTF | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 9 |
| text | [api/song.md](api/song.md), [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 5 |
| plain text | [api/song.md](api/song.md) |
| Unicode | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 9 |
| encoding | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 9 |
| Windows-1252 | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 9 |
| German characters | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 9 |
| umlauts | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 9 |

## Actions

| Keyword | Document |
|---------|----------|
| macro | [api/song.md](api/song.md), [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 5 |
| media | [api/song.md](api/song.md), [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 5 |
| image | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 5 |
| video | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 5 |
| cue | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 5 |
| label | [api/song.md](api/song.md), [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 5 |

## PHP API

| Keyword | Document |
|---------|----------|
| read | [api/song.md](api/song.md), [api/playlist.md](api/playlist.md) |
| write | [api/song.md](api/song.md), [api/playlist.md](api/playlist.md) |
| generate | [api/song.md](api/song.md), [api/playlist.md](api/playlist.md) |
| parse | [api/song.md](api/song.md), [api/playlist.md](api/playlist.md) |
| ProFileReader | [api/song.md](api/song.md) |
| ProFileWriter | [api/song.md](api/song.md) |
| ProFileGenerator | [api/song.md](api/song.md) |
| ProPlaylistReader | [api/playlist.md](api/playlist.md) |
| ProPlaylistWriter | [api/playlist.md](api/playlist.md) |
| ProPlaylistGenerator | [api/playlist.md](api/playlist.md) |
| Song | [api/song.md](api/song.md) |
| PlaylistArchive | [api/playlist.md](api/playlist.md) |
| CLI | [api/song.md](api/song.md), [api/playlist.md](api/playlist.md) |
| command line | [api/song.md](api/song.md), [api/playlist.md](api/playlist.md) |

## Protobuf

| Keyword | Document |
|---------|----------|
| Presentation | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 3 |
| CueGroup | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 4 |
| Cue | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 5 |
| Action | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 5 |
| Playlist | [formats/pp_playlist_spec.md](formats/pp_playlist_spec.md) Section 3 |
| PlaylistItem | [formats/pp_playlist_spec.md](formats/pp_playlist_spec.md) Section 5 |
| UUID | [formats/pp_song_spec.md](formats/pp_song_spec.md), [formats/pp_playlist_spec.md](formats/pp_playlist_spec.md) |
| field number | [formats/pp_song_spec.md](formats/pp_song_spec.md) Appendix |
| proto | [formats/pp_song_spec.md](formats/pp_song_spec.md) |

## Troubleshooting

| Keyword | Document |
|---------|----------|
| error | [api/song.md](api/song.md), [api/playlist.md](api/playlist.md) |
| exception | [api/song.md](api/song.md), [api/playlist.md](api/playlist.md) |
| empty file | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 8 |
| edge case | [formats/pp_song_spec.md](formats/pp_song_spec.md) Section 8, [formats/pp_playlist_spec.md](formats/pp_playlist_spec.md) Section 9 |
| ZIP64 bug | [formats/pp_playlist_spec.md](formats/pp_playlist_spec.md) Section 4, [api/playlist.md](api/playlist.md) |
| round-trip | [internal/learnings.md](internal/learnings.md) |
| fidelity | [internal/issues.md](internal/issues.md) |

## Development

| Keyword | Document |
|---------|----------|
| TDD | [internal/learnings.md](internal/learnings.md) |
| PHPUnit | [internal/learnings.md](internal/learnings.md) |
| composer | [internal/learnings.md](internal/learnings.md) |
| architecture | [internal/decisions.md](internal/decisions.md) |
| decision | [internal/decisions.md](internal/decisions.md) |
| convention | [internal/learnings.md](internal/learnings.md) |
| issue | [internal/issues.md](internal/issues.md) |
| gotcha | [internal/issues.md](internal/issues.md) |
