There's more...

If you feel up to it, you can add dynamic parameters to your provider. Remember the File parameter for the FileSystem provider or CodeSigningCertificate for the Certificate provider? You can add your own parameters easily with SHiPS:

class MyDynamicParameter
{
[Parameter()]
[switch]
$DispenseCandy
}

class MyContainerType : Microsoft.PowerShell.Ships.SHiPSDirectory
{
...
[object] GetChildItemDynamicParameters()
{
return [MyDynamicParameter]::new()
}
...
}

New-PSDrive -Name MyOwnDrive -PSProvider SHiPS -Root ShipsProviderAdvanced#MyContainerType
Get-ChildItem MyOwnDrive: -Recurse -DispenseCandy

This isn't only limited to switch parameters, but to any parameter type you can think of. This includes parameter validation as well, allowing you, for example, to define a ValidateSet parameter for Get-ChildItem and your own provider.