When designing an object for a cmdlet, ensure its members map directly to the parameters of the cmdlets that will use it. This mapping lets the object be sent to the pipeline and passed from one cmdlet to another easily.
Preexisting .NET Framework objects returned by cmdlets are frequently missing members the script developer or user needs, particularly for display and for creating correct member names so the object passes correctly to the pipeline. Create a custom Types.ps1xml file to document these required members. Recommended naming convention: <Your_Product_Name>.Types.ps1xml.
For example, add a Mode script property to System.IO.FileInfo to display file attributes more clearly, or a Count alias property to System.Array to use that property name consistently instead of Length.