Classifier
Classifies .gitignore entries as directory-oriented or file-oriented patterns.
GitIgnore
Represents a .gitignore file with its path and entries.
Merger
Merges, deduplicates, and sorts .gitignore entries.
Reader
Reads .gitignore files and returns domain representations for them.
Writer
Renders and persists normalized .gitignore content.