BREAKING CHANGES:
- Remove Value property (use implicit string conversion)
- Remove Exists, IsFile, IsDirectory (no filesystem access)
- Remove CurrentDirectory (no filesystem access)
- FileName now returns RelativePath instead of string
- Root now returns AbsolutePath? instead of string
- Extension now returns FileExtension instead of string
NEW:
- FileExtension value type with WithDot/WithoutDot properties
- Common extensions: Txt, Json, Cs, Md, etc.
- IsOneOf() for extension matching
- FileNameWithoutExtension property
- ChangeExtension() method
99 tests passing.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>