Do I need both Windows and JwaWindows declared or JwaWindows is an improved version and Windows is depreciate?
Here is a suggestion for you, one that I have personally followed and, still occasionally follow:
Create your own Windows API unit that uses FPC windows. You want this because you want to ensure you use the same types (otherwise you can have the compiler report type mismatches on identically named types which makes locating the problem a problem onto itself.)
In your own Windows API unit, you have your own definitions which may augment what is in FPC's windows unit or override things in that unit. The one thing you have to ensure is that your unit always appears _after_ FPC's windows unit.
or, if you don't mind incurring into a truckload of work, you can create your own full fledged no-holds-barred replacement for FPC's windows and messages units. Aside from it being an enormous amount of work, it's likely limited in its usefulness if you use packages because those use the types from FPC's windows (and messages) and it's very likely those will collide with your own types if you create a full fledged replacement. This option is only genuinely useful if you always code directly to the Windows API.
I recommend you create an "extension" unit where you add the missing definitions and override definitions that are "deficient"/"questionable"/"defective" (whatever the case may be in your opinion.)
HTH.